home *** CD-ROM | disk | FTP | other *** search
/ Terra Sound Library / Terra Sound Library.iso / player_composer / fmsynth / fmsynth.doc < prev    next >
Text File  |  1995-02-01  |  20KB  |  641 lines

  1.  
  2.                   ›1m         FMsynth  v3.3         ›m
  3.                   ›1m          User Manual          ›m
  4.  
  5.  
  6.  
  7. ›1m1 Introduction›m
  8.  
  9. Welcome to FMsynth! This is a program for generating sounds by
  10. FM Synthesis. The sounds can be played on your Amiga keyboard and
  11. saved in IFF-8SVX or raw format.
  12.  
  13.  
  14. ›1m2 Copyright›m
  15.  
  16. © Copyright 1993 by   Christian Stiens
  17.                       Heustiege 2
  18.                       D-59348 Lüdinghausen
  19.                       Germany
  20.  
  21.               E-Mail: Christian_Stiens@ouzonix.bo.open.de
  22.  
  23.                Phone: +49-2591-22857
  24.  
  25. The distribution of the complete and unchanged paket is allowed
  26. to uncommercial mailboxes/FTP-servers and to the following public
  27. domain series:
  28.  
  29.   - Fred Fish
  30.   - AMOK
  31.   - Time
  32.   - Saar
  33.   - AM/FM
  34.  
  35. You use this program on your own risk. There is no liability or
  36. responsibility for any damages caused by the use of this program.
  37.  
  38. All Rights reserved.
  39.  
  40. The MIDI Library and related files are Copyright (C) 1987, 1988,
  41. Pregnant Badger Music.  All rights reserved.
  42.  
  43.  
  44. ›1m3 Registration›m
  45.  
  46. FMsynth is Shareware and protected by a key file. Without the key file
  47. you can't save your sounds and voices. If you want to register,
  48. then please send 30 DM or 20 US$ or the equivalent amount in your local
  49. currency to me. You can send cash or an eurocheck. Please add your
  50. full address to the registration request. If you want to receive the
  51. key via email then tell me your internet email address.
  52.  
  53.  
  54. ›1m4 Installation›m
  55.  
  56. Copy the arp.library to LIBS: if you don't have AmigaOS 2.04 or greater.
  57.  
  58. Copy the midi.library to LIBS: if you want to play your FM sounds on
  59. a midi keyboard which is connected to the amiga.
  60.  
  61. The best place for the rexx programs is the REXX: directory because
  62. otherwise they can't be found, if they are not in the current directory.
  63.  
  64. Copy the key file (if you are happy to own one) to the directory
  65. in which FMsynth is contained, because the key is searched first in
  66. the current dir and second in "PROGDIR:".
  67.  
  68.  
  69. ›1m5 Manual›m
  70.  
  71. ›1m5.1 The FM Synthesis›m
  72.  
  73. First a little introduction to the FM Sythesis. The FM Synthesis
  74. was developed by John Chowning and used in the DX7 (one of the best
  75. sold synthesisers ever) and his successors.
  76.  
  77. The priciple of the FM Synthesis is that one sinus wave modulates
  78. another sinus wave. Written as a formula it looks like:
  79.  
  80.             A(t) = Ac * sin(Fc * t + Am * sin(Fm * t))
  81.  
  82. Ac: The amplitude of the carrier wave
  83. Am: The amplitude of the modulator wave
  84. Fc: The frequency of the carrier
  85. Fm: The frequency of the modulator
  86.  
  87. As you see, the modulator wave modulates the phase of the carrier
  88. wave. This leads to the addition of harmonics to the carrier wave.
  89.  
  90. The  ratio Fc to Fm determines, whether the sound is harmonic (periodic)
  91. or non harmonic (not periodic). If the ratio is not rational
  92. (e.g. 1 to 3.1415), then the sound is not harmonic, if it is rational
  93. (e.g. 2 to 3), then the sound is harmonic. The frequency of the sound is
  94. equal to the greatest divisor of Fc and Fm.
  95.  
  96. The modulated wave has harmonics at Fc + n * Fm, where n ranges
  97. through the integers. Negative frequencies must be interpreted
  98. as positive frequencies with sign changed. The number of harmonics
  99. is determined by Am.
  100.  
  101. There are six operators (sinus generators) which can be combined in
  102. different ways (the so called algorithms).
  103.  
  104. An example of an algorithm is given in the following figure (DX7
  105. notation):
  106.  
  107.           +---+
  108.           | 3 |
  109.           +---+
  110.             |
  111.           +---+     +---+   +---+
  112.           | 2 |     | 5 |   | 6 |
  113.           +---+     +---+   +---+
  114.             |         |   /
  115.           +---+     +---+
  116.           | 1 |     | 4 |
  117.           +---+     +---+
  118.             |_________|
  119.  
  120. The operators #1 and #4 are the carriers in this example, the other
  121. operators work as modulators. This algorithm is consisting of two
  122. parts by three operators. In the first part operator #3 modulates
  123. operator #2, this modulates operator #1. In the second part
  124. operators #5 and #6 are modulating the operator #4.
  125.  
  126. FMsynth's operators can also generate a triangle-, sawtooth- and
  127. square wave.
  128.  
  129.  
  130. ›1m5.2 General operating hints›m
  131.  
  132. Requesters: You can hit the RETURN key instead of clicking in the
  133. right gadget and hit the ESC key instead of clicking in the left
  134. gadget.
  135.  
  136. Windows: Nearly all windows (the "Any Chord" window and requester windows
  137. excepted) are asynch, that means, you don't have to close these windows,
  138. to go on with the program. You can hit the ESC key instead of clicking in the
  139. close gadget of the windows to get rid of the windows.
  140.  
  141.  
  142. ›1m5.3 The Start›m
  143.  
  144. FMsynth can be started as usual via CLI or Workbench.
  145.  
  146.  
  147. ›1m5.4 Arguments›m
  148.  
  149. You can put the following arguments in FMsynth's icon:
  150.  
  151. PALETTE=###,###,###,###    determines the screen colors
  152.  
  153. VOICEDIR=...               determines the default directory for the
  154.                            .voice files. Don't forget to append a slash
  155.                            or a colon.
  156.  
  157. INSTDIR=...                determines the default directory for the
  158.                            instrument files. Don't forget to append
  159.                            a slash or a colon.
  160.  
  161. LACE=TRUE|FALSE            if TRUE then the screen is interlaced
  162.  
  163. The icon is parsed also, if you start FMsynth in the CLI. Exceptions:
  164. The program is found not direct, but over the search path (Kick 1.3).
  165. The program is resident (Kick 2.04+).
  166.  
  167.  
  168. ›1m5.5 The Screen›m
  169.  
  170. The screen title displays the actual voice number and name.
  171. An "A" is displayed, if the AutoCalc mode is activated. The last
  172. thing, which is shown in the title bar is the actual chord setting.
  173.  
  174.  
  175. ›1m5.5.1 Operator›m
  176.  
  177. Here you can edit the parameters of the 6 operators.
  178.  
  179. KSc/R:     Fmsynth uses 5 sound buffers (one for each octave).
  180.            With this key rate scaling parameter you can determine
  181.            how much the speed of the envelope increases for
  182.            higher octaves. The default value of 64 leads to doubling
  183.            of the rate per octave.
  184.  
  185. KSc/L:     With the default value 64 of the key level scaling parameter
  186.            the level of all 5 sound buffers is the same. If you
  187.            increase (decrease) this value you can achieve, that
  188.            the output level of the operator is higher (lower) in high
  189.            octaves than in low octaves.
  190.  
  191.            Attention: If one or more KSc values of some operator is
  192.            not equal to 64, then the time for calculating the sound
  193.            is doubled, because in this case each of the 5 sound buffers
  194.            must be calculated individual.
  195.  
  196. Rate/1-4:  The rates of the four envelope segments. They determine,
  197.            how fast the corresponding level is reached.
  198.  
  199. Level/1-4: The levels of the four envelope segments
  200.  
  201. OL:        This parameter determines the output level of the operator.
  202.            If the operator work as carrier, then this parameter
  203.            influences the loudness. If it works as modulator, then
  204.            it influences the timbre.
  205.  
  206. Ph:        With this gadget you can determine the initial phase
  207.            of the operator. The value 63 means +180 degrees, the
  208.            value -64 stands for -180 degrees.
  209.  
  210. Freq:      In this string gadget you can enter the frequency of the
  211.            operators.
  212.  
  213. Detune:    The operators can be detuned in the range -15 upto 15.
  214.            One unit is 1.13 cents (100 cents is one half tone step).
  215.            Click on the arrow gadgets to increase or decrease the
  216.            detuning. If you hold the shift key then the detune
  217.            is changed by 5 on every click.
  218.  
  219. Mode:      Determines whether the operator's frequency is fixed or
  220.            relative. In mode "RATIO" the frequency of the operator
  221.            is relative to the note played on the keyboard. The
  222.            value "1.0" leads to the usual tuning (A = 440 Hz).
  223.  
  224.            If the mode is "FIXED" the frequency of the operator is
  225.            constant 1000 Hz, if you enter "1000.0" to the string
  226.            gadget. But this is not quite true, because not every
  227.            note has an own buffer but every octave. So the actual
  228.            frequency can be 41% more or less.
  229.  
  230.            Attention: If the mode of one or more operators is "FIXED",
  231.            then the time for calculating the sound is doubled, because
  232.            in this case each of the 5 sound buffers must be calculated
  233.            individual.
  234.  
  235. PEG:       See 4.5.3 (Pitch-EG)
  236.  
  237. Wave:      Click in the gadget in the top right corner of the field
  238.            to change the operator's waveform.
  239.  
  240.  
  241. ›1m5.5.2 LFO›m
  242.  
  243. In this field you can edit the parameters of the low frequency oscillator
  244. in realtime. The purpose of the LFO is to enrich the sound with a vibrato
  245. (either of the pitch or the amplitude).
  246.  
  247. Spd: The speed of the LFO
  248.  
  249. Del: The delay after a key press until the vibrato begins.
  250.  
  251. AMD: The amount of the amplitude modulation
  252.  
  253. PMD: The amount of the pitch modulation
  254.  
  255. You can choose among 5 different waves of the LFO.
  256.  
  257.  
  258. ›1m5.5.3 Algorithm›m
  259.  
  260. Here you can edit the algorithm. Click on a modulator and the carrier
  261. which should be modulated. If the connection already exists, it is
  262. deleted. If not, the connection is added. If the number of the modulator
  263. is less or equal to the number of the carrier then the connection is
  264. a feedback loop and is drawn in another color.
  265.  
  266. The feedback is used for sawtooth like waves and for generating
  267. white noise.
  268.  
  269. The algorithmus of section 4.1 looks here as follow:
  270.  
  271.           +---+   +---+   +---+   +---+   +---+   +---+
  272.           | 1 |   | 2 |   | 3 |   | 4 |   | 5 |   | 6 |
  273.           +---+   +---+   +---+   +---+   +---+   +---+
  274.                  /       /               /    ____/
  275.                 /       /               /____/
  276.                /       /               //
  277.           +---+   +---+   +---+   +---+   +---+   +---+
  278.           | 1 |   | 2 |   | 3 |   | 4 |   | 5 |   | 6 |
  279.           +---+   +---+   +---+   +---+   +---+   +---+
  280.             |                       |
  281.  
  282. The little marks below the carrier gadgets indicate, which operators
  283. work as carriers.
  284.  
  285.  
  286. ›1m5.5.4 Sound›m
  287.  
  288. Calc:     The sound is calculated.
  289.  
  290. Size:     The size of all 5 sound buffers all together.
  291.  
  292. Transp:   The frequency of each operator that is in mode "ratio"
  293.           is multiplied with this transpose value. If you want
  294.           to create a bass sound then you could put the value
  295.           0.25 in the gadget for tuning the sound two octaves
  296.           lower.
  297.  
  298. Feedback: The amount of the feedback (0-7).
  299.  
  300. Mode:     Determines, whether the sound is playable polyphone or
  301.           monophone.
  302.  
  303. Filter:   Here you can turn the low pass filter of the Amiga on or
  304.           off.
  305.  
  306. Volume:   The amplitude of the sound. If the slider is right of the
  307.           middle position then distortion can occur.
  308.  
  309. RlRate:   The release rate at releasing a key. This parameter can be
  310.           changed in realtime.
  311.  
  312.  
  313. ›1m5.6 The Menus›m
  314.  
  315. ›1m5.6.1 Project›m
  316.  
  317. ›4mOpen Voice›m
  318.  
  319. Lets you load the parameters of a saved sound.
  320.  
  321. ›4mSave Voice›m
  322.  
  323. Lets you save the parameters of the actual sound in a file.
  324.  
  325. ›4mSave 8SVX-5›m
  326.  
  327. The actual sound is saved in IFF-8SVX (5 octave) format.
  328.  
  329. ›4mSave 8SVX-1›m
  330.  
  331. The actual sound is saved in IFF-8SVX (1 octave) format.
  332.  
  333. ›4mSave Raw›m
  334.  
  335. One octave of the sound is saved in raw format.
  336.  
  337. ›4mChoose Octave›m
  338.  
  339. Here you can select the octave, which is used for saving in 8SVX-1 or
  340. raw format.
  341.  
  342. ›4mSave Icons?›m
  343.  
  344. If this menu item is checked then an icon is saved together with
  345. the data files.
  346.  
  347. ›4mRelease Channels›m
  348.  
  349. Frees the audio channels and the CIAA timer. If you want to
  350. go on with the program click on the "Ok" Gadget.
  351.  
  352. ›4mNew›m
  353.  
  354. Resets the program to the initial settings.
  355.  
  356. ›4mAbout›m
  357.  
  358. Displays some information of the program
  359.  
  360. ›4mQuit›m
  361.  
  362. You can leave the program with this menu item.
  363.  
  364.  
  365. ›1m5.6.2 Voice›m
  366.  
  367. ›4mInit›m
  368.  
  369. Resets the actual voice to the default settings.
  370.  
  371. ›4mCopy›m
  372.  
  373. Here you can copy the actual voice to another voice.
  374.  
  375.  
  376. ›1m5.6.3 Operator›m
  377.  
  378. ›4mInit›m
  379.  
  380. Resets the actual operator to the default settings.
  381.  
  382. ›4mCopy›m
  383.  
  384. Here you can copy the settings of the actual operator to one or more
  385. other operators.
  386.  
  387. ›4mEG Copy›m
  388.  
  389. Here you can copy the envelope settings of the actual operator to
  390. one or more other operators.
  391.  
  392. ›4mFrequency›m
  393.  
  394. Here you can double or halve the frequency of the actual operator.
  395. With the "Set" item you can clear and activate the "Freq" gadget
  396. of the operator field.
  397.  
  398.  
  399. ›1m5.6.4 Special›m
  400.  
  401. ›4mAlgorithm›m
  402.  
  403. Here are presets of 10 often used algorithms.
  404.  
  405. ›4mChord›m
  406.  
  407. FMsynth can calculate chords directly. This is usefull, because
  408. the Amiga has only four audio channels and a chord would
  409. eat at least 3 of them. You can choose among 7 different chords:
  410.  
  411.         - Major         (major)
  412.         - Minor         (minor)
  413.         - Dimished      (dim)
  414.         - Suspended 4   (sus 4)
  415.         - Dominant Sept (7th)
  416.         - Major Sept    (maj 7)
  417.         - Minor Sept    (min 7)
  418.  
  419. Please note that the calculation of a chord takes three till
  420. four times as long as the calculation of the normal sound.
  421.  
  422. You can also build any other chord. If you choose this menu
  423. item, a dialog window appears. Enter the halftone numbers of the
  424. chord and the number of partials in the gadgets. For example
  425. the major chord has halftones 0, 4, 7 and the number of
  426. partials is 3.
  427.  
  428. A simplier way to specify the chord is to play it on the keyboard,
  429. the notes are then put in the gadgets automatically. Hit the space key,
  430. if you have misplayed the chord and play it again. The base
  431. key for the chord is C2 (key 'Q') on the keyboard.
  432.  
  433. You can put fractional values in the partial gadgets, so you
  434. can generate detuned sounds. The values are then between
  435. -0.2 and 0.2 typically.
  436.  
  437. ›4mCalc Sound›m
  438.  
  439. This item is equivalent to the "Calc" gadget and leads to the calculation
  440. of the sound.
  441.  
  442. ›4mAutoCalc›m
  443.  
  444. If this item is selected, then after each parameter change the sound
  445. is calculated new automatically.
  446.  
  447. ›4mLoop›m
  448.  
  449. Opens the loop window, in which you can set or clear the loop of your
  450. sound. For this purpose click at the start of the loop with the left
  451. mouse button and the right mouse button at the end of the loop. To
  452. clear the loop hit the "Off" gadget. To reset the loop to the initial
  453. setting press the "Undo" gadget.
  454.  
  455. Only one loop can be set for all five octaves.
  456.  
  457. ›4mFourier›m
  458.  
  459. Opens the "Fourier-Analysis" window, which performs a fourier analysis
  460. over the loop of your sound. This is for looking into the harmonics of
  461. the sound.
  462.  
  463. ›4mPitch-EG›m
  464.  
  465. This opens the "Pitch-EG" window. Here you can set the pitch envelope
  466. of your sound. The level 63 means increasing of the pitch by one
  467. octave. Level -32 stands for decreasing the pitch by one octave and
  468. level -64 means frequency null.
  469.  
  470. To enable the Pitch-EG for an operator, you must set the PEG gadget
  471. to "ON".
  472.  
  473. ›4mGraph. EG›m
  474.  
  475. Opens the "Graphic EG" Window. Here you can edit the envelope of the
  476. actual Operator with the mouse. Click on one of the four knobs and
  477. move it.
  478.  
  479. The scale is adjusted to the lenght of the actual sound, so that
  480. the left edge of the edit field corresponds to the begin of the
  481. sound and the right edge of the field corresponds to the end of
  482. the sound. If the rate scaling parameter is not on the default
  483. value of 64 then this correspondance is not given anymore.
  484.  
  485.  
  486. ›1m5.6.5 MIDI›m
  487.  
  488. ›4mReceive›m
  489.  
  490. Here you can set the Midi channel for receiving midi commands.
  491.  
  492. ›4mVel sens›m
  493.  
  494. Determines the velocity curve.
  495.  
  496. ›4mTranspose›m
  497.  
  498. With this menu item a transpose of midi notes in the range +/- 2 octaves
  499. is possible.
  500.  
  501.  
  502. ›1m5.7 Keys›m
  503.  
  504. ›1m5.7.1 The Keyboard›m
  505.  
  506.   Octave 2         2   3       5   6   7       9   0       '
  507.                  Q   W   E   R   T   Z   U   I   O   P   Ü   +
  508.  
  509.   Octave 1          S   D   G   H   J       L   Ö      #
  510.                   Y   X   C   V   B   N   M   ,   .   -   SHIFT
  511.  
  512. The keyboard at the lower part of the screens shows, which keys
  513. are pressed actual (only for PAL able Amigas).
  514.  
  515.  
  516. ›1m5.7.2 Functionkeys›m
  517.  
  518. Hit F1 - F5 to switch between the five voices. For voice #2 upto #5
  519. you must first set up the buffer by activating the "Size" Gadget and
  520. specifying the desired length of the sound buffer.
  521.  
  522. With F6 - F10 you determine, which octaves can be reached with the
  523. keyboard. The offset is displayed as a little mark below the keyboard
  524. picture.
  525.  
  526.  
  527. ›1m5.7.3 Space key›m
  528.  
  529. At each time you can stop the sound output with the space key.
  530.  
  531.  
  532. ›1m5.8 ARexx›m
  533.  
  534. FMsynth has an ARexx-Port called "FMSYNTH". It understands the
  535. following commands:
  536.  
  537. openvoice <name>             Opens voice <name>. Returns 5 on error.
  538.  
  539. savevoice <name>             Saves the actual voice under the file name <name>.
  540.                              Returns 5 on error.
  541.  
  542. calcsound                    The sound is calculated.
  543.  
  544. save8svx5 <name>             Saves the actual sound to file <name> in
  545.                              8SVX 5-Oktav format. RC=5 on error.
  546.  
  547. save8svx1 <name> [<#(1-5)>]  Save the specified octave of the actual voice
  548.                              to file <name> as 8SVX 1 octave file.
  549.                              Returns 5 on error.
  550.  
  551. saveraw   <name> [<#(1-5)>]  Saves the sound in raw format.
  552.  
  553. voice     [<#(1-5)>]         Sets the specified voice and returns the
  554.                              old voice number.
  555.  
  556. operator  [<#(1-6)>]         Sets the specified operator und returns
  557.                              the old operator number.
  558.  
  559. openwindow <name> [<#> <#>]  Opens the window <name> on the specified
  560.                              position. <name> can be one of:
  561.                              f(ourier), l(oop), p(itcheg), g(raphiceg)
  562.  
  563. noteon    {<#(0-60)>}        Presses the specified notes.
  564.  
  565. noteoff   {<#(0-60)>}        Releases the specified notes.
  566.  
  567. pause     <#.#>              Performs a pause with the specified length
  568.                              in seconds.
  569.  
  570. quit                         Quits FMsynth.
  571.  
  572. If you start FMsynth the rexx program 'startup.fmsy' is called.
  573. The keys Shift-F1 till Shift-F10 call the rexx programs sf1.fmsy till
  574. sf10.fmsy. The cursor keys call the rexx programs up.fmsy, down.fmsy,
  575. left.fmsy and right.fmsy.
  576.  
  577. The included Rexx programs:
  578.  
  579. left.fmsy, right.fmsy: Switches to the next/previous voice
  580. up.fmsy, down.fmsy:    Switches to the next/previous operator
  581. sf1.fmsy:              Plays a random melody
  582. sf2.fmsy:              Plays a melody successively with all voices
  583.                        in the voice directory
  584. sf10.fmsy:             Aborts all running Rexx commands
  585. startup.fmsy:          Opens the Pitch-EG window
  586.  
  587.  
  588. ›1m5.9 MIDI›m
  589.  
  590. FMsynth supports the following Midi commands:
  591.  
  592. - Note on  (with velocity)
  593. - Note off
  594. - Pitch bend (+/- 2 half tones)
  595. - Program change (0..4 for voice #1..#5)
  596.  
  597.  
  598. ›1m5 Some tips for sound programming›m
  599.  
  600. Good sounds have a dynamic spectrum, that means its harmonics change
  601. continuous. There are two ways for achieving this. First with the
  602. envelope on the modulators and second with detuning.
  603.  
  604.  
  605. ›1m6 Compatibility›m
  606.  
  607. If you want to use your sounds in other programs like Sonix or
  608. MED (© Teijo Kinnunnen) you should consider that the realtime
  609. parameters (release rate and LFO) have only affect if you play
  610. the sounds in FMsynth. They have no effect to the 8svx file.
  611.  
  612. If you play a 8SVX 5-octave sound in MED, you will notice, that
  613. the sound quality is not as good, as if you play the sound
  614. directly in FMsynth. This reason for this is, that FMsynth
  615. uses a higher sampling rate for playing the sound on average.
  616.  
  617.  
  618. ›1m8 Support›m
  619.  
  620. Thanx for support to following persons:
  621.  
  622.   - Stephan Fuhrmann
  623.   - Ewan MacPherson
  624.   - Jeff Harrington,
  625.   - Bill Schottstaedt
  626.   - Jürgen Zimmermann
  627.  
  628. And last but not least Fridtjof Siebert for the great
  629. Amiga Oberon Compiler.
  630.  
  631.  
  632. ›1m9 The end›m
  633.  
  634. If you have programmed good sounds, then please send them to me
  635. (in voice format not 8svx format!). The best sounds are included
  636. to the next release of FMsynth.
  637.  
  638.  
  639. ›3mMuch fun!›m
  640.  
  641.